home *** CD-ROM | disk | FTP | other *** search
/ Mac Easy 2010 May / Mac Life Ubuntu.iso / casper / filesystem.squashfs / usr / src / linux-headers-2.6.28-15 / include / net / syncppp.h < prev    next >
Encoding:
C/C++ Source or Header  |  2008-12-24  |  3.3 KB  |  103 lines

  1. /*
  2.  * Defines for synchronous PPP/Cisco link level subroutines.
  3.  *
  4.  * Copyright (C) 1994 Cronyx Ltd.
  5.  * Author: Serge Vakulenko, <vak@zebub.msk.su>
  6.  *
  7.  * This software is distributed with NO WARRANTIES, not even the implied
  8.  * warranties for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  9.  *
  10.  * Authors grant any other persons or organizations permission to use
  11.  * or modify this software as long as this message is kept with the software,
  12.  * all derivative works or modified versions.
  13.  *
  14.  * Version 1.7, Wed Jun  7 22:12:02 MSD 1995
  15.  *
  16.  *
  17.  *
  18.  */
  19.  
  20. #ifndef _SYNCPPP_H_
  21. #define _SYNCPPP_H_ 1
  22.  
  23. #ifdef __KERNEL__
  24. struct slcp {
  25.     u16    state;          /* state machine */
  26.     u32    magic;          /* local magic number */
  27.     u_char    echoid;         /* id of last keepalive echo request */
  28.     u_char    confid;         /* id of last configuration request */
  29. };
  30.  
  31. struct sipcp {
  32.     u16    state;          /* state machine */
  33.     u_char  confid;         /* id of last configuration request */
  34. };
  35.  
  36. struct sppp 
  37. {
  38.     struct sppp *    pp_next;    /* next interface in keepalive list */
  39.     u32        pp_flags;    /* use Cisco protocol instead of PPP */
  40.     u16        pp_alivecnt;    /* keepalive packets counter */
  41.     u16        pp_loopcnt;    /* loopback detection counter */
  42.     u32        pp_seq;        /* local sequence number */
  43.     u32        pp_rseq;    /* remote sequence number */
  44.     struct slcp    lcp;        /* LCP params */
  45.     struct sipcp    ipcp;        /* IPCP params */
  46.     struct timer_list    pp_timer;
  47.     struct net_device    *pp_if;
  48.     char        pp_link_state;    /* Link status */
  49.     spinlock_t      lock;
  50. };
  51.  
  52. struct ppp_device
  53. {    
  54.     struct net_device *dev;    /* Network device pointer */
  55.     struct sppp sppp;    /* Synchronous PPP */
  56. };
  57.  
  58. static inline struct sppp *sppp_of(struct net_device *dev) 
  59. {
  60.     struct ppp_device **ppp = dev->ml_priv;
  61.     BUG_ON((*ppp)->dev != dev);
  62.     return &(*ppp)->sppp;
  63. }
  64.  
  65. #define PP_KEEPALIVE    0x01    /* use keepalive protocol */
  66. #define PP_CISCO        0x02    /* use Cisco protocol instead of PPP */
  67. #define PP_TIMO         0x04    /* cp_timeout routine active */
  68. #define PP_DEBUG    0x08
  69.  
  70. #define PPP_MTU          1500    /* max. transmit unit */
  71.  
  72. #define LCP_STATE_CLOSED        0       /* LCP state: closed (conf-req sent) */
  73. #define LCP_STATE_ACK_RCVD      1       /* LCP state: conf-ack received */
  74. #define LCP_STATE_ACK_SENT      2       /* LCP state: conf-ack sent */
  75. #define LCP_STATE_OPENED        3       /* LCP state: opened */
  76.  
  77. #define IPCP_STATE_CLOSED       0       /* IPCP state: closed (conf-req sent) */
  78. #define IPCP_STATE_ACK_RCVD     1       /* IPCP state: conf-ack received */
  79. #define IPCP_STATE_ACK_SENT     2       /* IPCP state: conf-ack sent */
  80. #define IPCP_STATE_OPENED       3       /* IPCP state: opened */
  81.  
  82. #define SPPP_LINK_DOWN        0    /* link down - no keepalive */
  83. #define SPPP_LINK_UP        1    /* link is up - keepalive ok */
  84.  
  85. void sppp_attach (struct ppp_device *pd);
  86. void sppp_detach (struct net_device *dev);
  87. int sppp_do_ioctl (struct net_device *dev, struct ifreq *ifr, int cmd);
  88. struct sk_buff *sppp_dequeue (struct net_device *dev);
  89. int sppp_isempty (struct net_device *dev);
  90. void sppp_flush (struct net_device *dev);
  91. int sppp_open (struct net_device *dev);
  92. int sppp_reopen (struct net_device *dev);
  93. int sppp_close (struct net_device *dev);
  94. #endif
  95.  
  96. #define SPPPIOCCISCO    (SIOCDEVPRIVATE)
  97. #define SPPPIOCPPP    (SIOCDEVPRIVATE+1)
  98. #define SPPPIOCDEBUG    (SIOCDEVPRIVATE+2)
  99. #define SPPPIOCSFLAGS    (SIOCDEVPRIVATE+3)
  100. #define SPPPIOCGFLAGS    (SIOCDEVPRIVATE+4)
  101.  
  102. #endif /* _SYNCPPP_H_ */
  103.